第二十八天 Implementing File-System(檔案系統實作)--下
今天來把剩下的說完~~
昨天提到檔案配置的方法,檔案配置就需要空間,那現在就來講free space如何管理。Free space可以透過以下的方法來管理:
Free space也是需要保護,不被惡意程式使用,像是指向free list的指標,然後bit vector也需要被存放在硬碟內,而且block的使用狀態在記憶體跟硬碟中,不能有差異。如果有差異存在,有個解決方法,先將硬碟內的狀態設為被使用,接下來再分配block的使用,最後才將記憶體內block的使用狀態設為被使用。以下有例圖:
影響檔案系統效率的原因有:
能夠增加效能的方法:
而檔案再執行難免都會有出錯的時候,這時我們就要想辦法來恢復:
Log Structured File System(LFS):
LFS紀錄著每一次檔案的更新動作,檔案不管做什麼動作都要寫入log內,而且一旦寫進去皆會被commit,但file system可能還沒有這麼快就更新。而log內的動作是非同步的寫入file system,意思是當檔案被修改後,log的動作會被移除。但如果檔案系統crashes的話,log內的動作還是會繼續執行。
Network File System(NFS):
這個系統是由Sun公司所發展的,所以他之前也叫Sun Network File System。這個系統是可以透過網路,讓不同的機器、不同的作業系統可以彼此分享個別的檔案,將遠端NFS的伺服器分享的目錄載到本地,讓遠端目錄看起來像是自己硬碟內一部分。他是使用UDP的方法而不用TCP,因為TCP的overhead太大,效能不好,使用者無法接受delay time那麼長。其他更細項的介紹就麻煩上網找找囉~
這章節就到這裡囉!